#include <QApplication>
#include <QStyleFactory>
#include <QDir>
#include <QStandardPaths>
#include <QMessageBox>
#include <QDebug>

#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    
    // 设置应用程序信息
    app.setApplicationName("Window Capture");
    app.setApplicationVersion("1.0.0");
    app.setOrganizationName("CapAudio");
    app.setOrganizationDomain("capture.example.com");
    
    // 设置应用程序样式
    app.setStyle(QStyleFactory::create("Fusion"));
    
    // 设置应用程序图标（如果有的话）
    // app.setWindowIcon(QIcon(":/icons/app.ico"));
    
    qDebug() << "=" << QString(50, '=');
    qDebug() << "Window Capture 启动中...";
    qDebug() << "=" << QString(50, '=');
    
    try {
        // 创建主窗口
        MainWindow window;
        window.show();
        
        qDebug() << "主窗口已创建并显示";
        
        // 运行应用程序
        int result = app.exec();
        
        qDebug() << QString("应用程序退出，返回值: %1").arg(result);
        return result;
        
    } catch (const std::exception &e) {
        qCritical() << QString("应用程序运行出错: %1").arg(e.what());
        QMessageBox::critical(nullptr, "错误", QString("应用程序运行出错: %1").arg(e.what()));
        return 1;
    } catch (...) {
        qCritical() << "应用程序运行出错: 未知异常";
        QMessageBox::critical(nullptr, "错误", "应用程序运行出错: 未知异常");
        return 1;
    }
}
